package com.QQ.service;

import com.QQ.qqcommon.Message;
import com.QQ.qqcommon.MessageType;

import java.io.ObjectInputStream;
import java.net.Socket;

public class ClientConnectServerThread extends Thread{
    //该线程需要有Socket
    private Socket socket;

    //构造器可以接受一个Socket的对象
    public ClientConnectServerThread(Socket socket){
        this.socket=socket;
    }

    @Override
    public void run() {
        //因为线程需要在后台与服务器进行通信，因此我们while 循环
        while(true){
            System.out.println("客户端线程，等待从读取从服务器发送的消息");
            try {
                ObjectInputStream ois =new ObjectInputStream(socket.getInputStream());
                Message message=(Message) ois.readObject();
                //判断这个message类型，然后做相应的业务处理
                //如果是读取到服务端返回的在线用户列表
                if (message.getMesType().equals(MessageType.MESSAGE_GET_ONLINE_FRIEND)){
                    //取出在线列表信息，并且显示
                    //规定
                    String[] onlineUsers =message.getContent().split(" ");
                    System.out.println("\n========当前在线用户列表========");
                    for (int i = 0; i < onlineUsers.length; i++) {
                        System.out.println("用户："+onlineUsers[i]);
                    }
                }else{
                    System.out.println("是其他类型的message，暂且不做任何处理。。。");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    //为了更方便得到socket
    public Socket getSocket(){
        return socket;
    }
}
